/**
 * 用户详情对话框（可用于添加和修改对话框）
 */
var UserInfoDlg = {
		userInfoData: {},
		validateFields: {
			name: {
				validators: {
					notEmpty: {
						message: '姓名不能为空'
					}
				}
			},
			officeName: {
				validators: {
					notEmpty: {
						message: '部门不能为空'
					}
				}
			},
			email : {
				validators : {
					notEmpty : {
						message : '邮件不能为空'
					},
					emailAddress : {
						message : '请输入正确的邮件地址如：'
					}
				}
			},
			phone : {
				message : 'The phone is not valid' ,
				validators : {
					notEmpty : {
						message : '手机号码不能为空'
					},
					stringLength : {
						min : 11 ,
						max : 11 ,
						message : '请输入11位手机号码'
					},
					regexp : {
						regexp : /^1[3|5|8]{1}[0-9]{9}$/ ,
						message : '请输入正确的手机号码'
					}
				}
			},
			password: {
				validators: {
					notEmpty: {
						message: '密码不能为空'
					},
					identical: {
						field: 'rePassword',
						message: '两次密码不一致'
					},
				}
			},
			rePassword: {
				validators: {
					notEmpty: {
						message: '密码不能为空'
					},
					identical: {
						field: 'password',
						message: '两次密码不一致'
					},
				}
			},
			loginName: {
				validators: {
					notEmpty: {
						message: '账户不能为空'
					},
					stringLength : {
						min : 5 ,
						max : 20 ,
						message : '用户名长度必须在5到20之间'
					},                     
				}
			},
			no: {
				validators: {
					notEmpty: {
						message: '工号不能为空'
					},
					stringLength : {
						min : 5 ,
						max : 20 ,
						message : '工号长度必须在6到30之间'
					},
					regexp : {
						regexp : /^[1-9]*[1-9][0-9]*$/ ,
						message : '只能输入整数'
					}
				}
			},
			oldPwd: {
				validators: {
					notEmpty: {
						message: '旧密码不能为空'
					}
				}
			},
			newPwd: {
				validators: {
					notEmpty: {
						message: '新密码不能为空'
					},
					identical: {
						field: 'rePwd',
						message: '两次密码不一致'
					},
				}
			},
			rePwd: {
				validators: {
					notEmpty: {
						message: '新密码不能为空'
					},
					identical: {
						field: 'newPwd',
						message: '两次密码不一致'
					},
				}
			}
		}
};

/**
 * 清除数据
 */
UserInfoDlg.clearData = function () {
	this.userInfoData = {};
};

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
UserInfoDlg.set = function (key, val) {
	this.userInfoData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
	return this;
};

/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
UserInfoDlg.get = function (key) {
	return $("#" + key).val();
};

/**
 * 关闭此对话框
 */
UserInfoDlg.close = function () {
	parent.layer.close(window.parent.MgrUser.layerIndex);
};




/**
 * 点击部门input框时
 *
 * @param e
 * @param treeId
 * @param treeNode
 * @returns
 */
UserInfoDlg.onClickDept = function (e, treeId, treeNode) {
	$("#officeName").attr("value", instance.getSelectedVal());
	$("#officeId").attr("value", treeNode.id);
};

/**
 * 显示部门选择的树
 *
 * @returns
 */
UserInfoDlg.showDeptSelectTree = function () {
	var cityObj = $("#officeName");
	var cityOffset = $("#officeName").offset();
	$("#menuContent").css({
		left: cityOffset.left + "px",
		top: cityOffset.top + cityObj.outerHeight() + "px"
	}).slideDown("fast");

	$("body").bind("mousedown", onBodyDown);
};

/**
 * 显示用户详情部门选择的树
 *
 * @returns
 */
UserInfoDlg.showInfoDeptSelectTree = function () {
	var cityObj = $("#citySel");
	var cityPosition = $("#citySel").position();
	$("#menuContent").css({
		left: cityPosition.left + "px",
		top: cityPosition.top + cityObj.outerHeight() + "px"
	}).slideDown("fast");

	$("body").bind("mousedown", onBodyDown);
};

/**
 * 隐藏部门选择的树
 */
UserInfoDlg.hideDeptSelectTree = function () {
	$("#menuContent").fadeOut("fast");
	$("body").unbind("mousedown", onBodyDown);// mousedown当鼠标按下就可以触发，不用弹起
};

/**
 * 收集数据
 */
UserInfoDlg.collectData = function () {

};

/**
 * 验证两个密码是否一致
 */
UserInfoDlg.validatePwd = function () {
	var password = this.get("password");
	var rePassword = this.get("rePassword");
	if (password == rePassword) {
		return true;
	} else {
		return false;
	}
};

/**
 * 验证数据是否为空
 */
UserInfoDlg.validate = function () {
	$('#userInfoForm').data("bootstrapValidator").resetForm();
	$('#userInfoForm').bootstrapValidator('validate');
	return $("#userInfoForm").data('bootstrapValidator').isValid();
};

/**
 * 提交添加用户
 */
UserInfoDlg.addSubmit = function () {

	this.clearData();
	this.collectData();

	if(document.getElementById('reloginName').innerHTML=="用户名已经存在"){
		EA.error("用户名已经存在!");
		return;
	}
	if(document.getElementById('reno').innerHTML=="工号已经存在"){
		EA.error("工号已经存在!");
		return;
	}
	if (!this.validate()) {
		return;
	}

	if (!this.validatePwd()) {
		EA.error("两次密码输入不一致");
		return;
	}

	//提交信息
	var ajax = new $ax("/user/save", function (data) {
		EA.success("添加成功!");
		window.parent.MgrUser.table.refresh();
		UserInfoDlg.close();
	}, function (data) {
		EA.error("添加失败!" + data.responseJSON.message + "!");
	});
	ajax.setData($('#userForm').serialize());
	ajax.start();
};

/**
 * 修改密码
 */
UserInfoDlg.chPwd = function () {
	if (!this.validate()) {
		return;
	}
	var ajax = new $ax("/user/changePwd", function (data) {
		if(data!="0"){
			EA.success("修改成功,请重新登录!");
		}else{
			EA.error("修改失败!原密码错误!");
		}

	}, function (data) {
		EA.error("修改失败!" + data.responseJSON.message + "!");
	});

	ajax.set("newPwd");
	ajax.set("oldPwd");
	ajax.set("id");
	ajax.start();
};


/**
 * 个人信息
 */
UserInfoDlg.editInfo=function(){
   
	var ajax = new $ax("/user/changeInfo", function (data) {
		EA.success("更新成功!");

	}, function (data) {
		EA.error("更新失败!" + data.responseJSON.message + "!");
	});

	ajax.set("avatar");
	ajax.set("email");
	ajax.set("phone");
	ajax.set("name");
	ajax.set("id");
	ajax.start();

}





/**
 * 提交修改
 */
UserInfoDlg.editSubmit = function () {


	this.clearData();
	this.collectData();

	if(document.getElementById('reloginName').innerHTML=="用户名已经存在"){
		EA.error("用户名已经存在!");
		return;
	}
	if(document.getElementById('reno').innerHTML=="工号已经存在"){
		EA.error("工号已经存在!");
		return;
	}
	if (!this.validate()) {

		return;
	}

	//提交信息
	var ajax = new $ax("/user/save", function (data) {
		EA.success("修改成功!");
		if (window.parent.MgrUser != undefined) {
			window.parent.MgrUser.table.refresh();
			UserInfoDlg.close();
		}
	}, function (data) {
		EA.error("修改失败!" + data.responseJSON.message + "!");
	});
	ajax.setData($('#userForm').serialize());
	ajax.start();
};


function onBodyDown(event) {
	if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(
			event.target).parents("#menuContent").length > 0)) {
		UserInfoDlg.hideDeptSelectTree();
	}
}

$(function () {
	EA.initValidator("userInfoForm", UserInfoDlg.validateFields);

	var ztree = new $ZTree("treeDemo", "/office/outtree");
	ztree.bindOnClick(UserInfoDlg.onClickDept);
	ztree.init();
	instance = ztree;

	//初始化性别选项


	// 初始化头像上传
	var avatarUp = new $WebUpload("avatar");
	avatarUp.setUploadBarId("progressBar");
	avatarUp.init();


	$("#loginName").blur(function(){

		$.ajax({
			type: 'POST',
			url: "/user/checkLoginName",
			data: {"loginName":$("#loginName").val(),"id":$("#id").val()},
			success: function(data){

				if(data.valid==true){

					document.getElementById('reloginName').innerHTML=" ";
				}else{
					document.getElementById('reloginName').innerHTML="用户名已经存在";
				}
			},
			dataType: "json"
		});

	});

	$("#no").blur(function(){

		$.ajax({
			type: 'POST',
			url: "/user/checkUserNo",
			data: {"no":$("#no").val(),"id":$("#id").val()},
			success: function(data){

				if(data.valid==true){

					document.getElementById('reno').innerHTML=" ";
				}else{
					document.getElementById('reno').innerHTML="工号已经存在";
				}
			},
			dataType: "json"
		});

	});
});
